(function(w) {
	// 空函数
	function shield() {
		return false;
	}
	document.addEventListener('touchstart', shield, false); //取消浏览器的所有事件，使得active的样式在手机上正常生效
	document.oncontextmenu = shield; //屏蔽选择函数
	// H5 plus事件处理
	var ws = null,
		as = 'pop-in';
	var wgtVer = null;

	function plusReady() {
		ws = plus.webview.currentWebview();
		//		plus.navigator.setStatusBarBackground("#222222"); //设置系统状态栏背景色
		//		plus.navigator.setStatusBarStyle('#ffffff'); //设置系统状态栏字体颜色
		// Android处理返回键
//		plus.key.addEventListener('backbutton', function() {
//			if(android_bak) {
//				back();
//			}
//		}, false);
	}
	if(w.plus) {
		plusReady();
	} else {
		document.addEventListener('plusready', plusReady, false);
	}
	// 处理返回事件
	w.back = function(hide) {
		if(w.plus) {
			ws || (ws = plus.webview.currentWebview());
			if(hide || ws.preate) {
				ws.hide('auto');
			} else {
				ws.close('auto');
			}
		} else if(history.length > 1) {
			history.back();
		} else {
			w.close();
		}
	};

	var openw = null,
		waiting = null;
	/**
	 * 打开新窗口
	 * @param {URIString} id : 要打开页面url
	 * @param {boolean} wa : 是否显示等待框
	 * @param {boolean} ns : 是否不自动显示
	 * @param {JSON} ws : Webview窗口属性
	 */
	w.clicked = function(id, wa, ns, ws) {
		if(openw) { //避免多次打开同一个页面
			return null;
		}

		//判断登录状态			
		if(id.indexOf("?") == -1) {
			root =  getItem("root")
			id += "?" + root //版本更新需要更改数字，清缓存
		} else {
			root = getItem("root")
			id += "&" + root //版本更新需要更改数字，清缓存
		}

		if(w.plus) {
			wa && (waiting = plus.nativeUI.showWaiting());
			ws = ws || {};
			ws.scrollIndicator || (ws.scrollIndicator = 'none');
			ws.scalable || (ws.scalable = false);
			var pre = ''; //'http://192.168.1.178:8080/h5/';
			openw = plus.webview.create(pre + id, id, ws, {
				popGesture: 'hide'
			});
			var sws = plus.nativeUI.showWaiting();
			ns || openw.addEventListener('loaded', function() { //页面加载完成后才显示
				//		setTimeout(function(){//延后显示可避免低端机上动画时白屏
				openw.show(as);
				sws.close();
			}, false);
			openw.addEventListener('close', function() { //页面关闭后可再次打开
				openw = null;
			}, false);
			return openw;
		} else {
			w.location.href = id;
		}
		return null;
	};
	
	
	
//	// Android处理返回键
//	android_bak = false; //全局变量设置返回键不生效
//	mui.init({ //
//		swipeBack: false, //关闭右滑关闭功能
//		keyEventBind: {
//			backbutton: false //关闭back按键监听
//		}
//	});
//
//	// 关闭侧滑返回功能
//	var wv = plus.webview.currentWebview();
//	wv.setStyle({
//		'popGesture': 'none'
//	});

	/**
	 * 关闭等待框
	 */
	w.closeWaiting = function() {
		waiting && waiting.close();
		waiting = null;
	}
	// 从相册中选择多张图片 
	var lfs = null; // 保留上次选择图片列表 
	w.galleryImgs = function(call, num) {
		// 从相册中选择图片
		var sn = num ? num : 9;
		console.log("从相册中选择多张图片:");
		plus.gallery.pick(function(e) {
			var files = [];
			lfs = e.files;
			console.log(e.files)
		}, function(e) {
			console.log("取消选择图片");
		}, {
			filter: "image",
			multiple: true,
			selected: lfs,
			maximum: sn,
			system: false,
			onmaxed: function() {
				plus.nativeUI.alert('最多只能选择9张图片');
			}
		}); // 最多选择9张图片 
	}

	//获取应用存储的值
	w.getItem = function(key) {
		if(navigator.userAgent.match(/Html5Plus/i)) {
			return plus.storage.getItem(key);
		} else {
			return localStorage.getItem(key)
		}
	}
	//修改或添加键值(key-value)对数据到应用数据存储中
	w.setItem = function(key, value) {
		//console.log(typeof value);
		if(typeof value == "number") var value = value.toString();
		if(navigator.userAgent.match(/Html5Plus/i)) {
			return plus.storage.setItem(key, value);
		} else {
			return localStorage.setItem(key, value);
		}
	}
	//通过key值删除键值对存储的数据
	w.removeItem = function(key) {
		if(navigator.userAgent.match(/Html5Plus/i)) {
			plus.storage.removeItem(key);
		} else {
			localStorage.removeItem(key);
		}
	}
	//清除应用所有的键值对存储数据
	w.clearItem = function() {
		if(navigator.userAgent.match(/Html5Plus/i)) {
			plus.storage.clear();
		} else {
			localStorage.clear();
		}
	}
	//退出登录 
	w.checkLogin = function() {
		var islogin = getItem("islogin");
		if(islogin == "1") {
			clearItem();
			$_toast("退出登录！");
			setTimeout(function() {
				plus.runtime.restart();
			}, 300) //重启APP
		}
		//清除微信登陆信息
		plus.oauth.getServices(function(services) {
			for(var i in services) {
				var service = services[i];
				service.logout();
			}
		});
	}

	//选择日期 
	w.pickDate = function(call) {
		plus.nativeUI.pickDate(function(e) {
			call(e.date);
		}, function(e) {
			console.log("未选择日期：" + e.message);
		}, {
			title: "请选择日期:"
		});
	}
	// 选择时间
	w.pickTime = function(call) {
		var t = new Date();
		plus.nativeUI.pickTime(function(e) {
			var d = e.date;
			call(d);
			console.log("选择的时间：" + d.getHours() + ":" + d.getMinutes());
		}, function(e) {
			console.log("未选择时间：" + e.message);
		}, {
			title: "请选择集合时间：",
			time: t
		});
	}

})(window);